package aplicacion;

import org.eclipse.swt.widgets.Display;
import aplicacion.database.DatabaseFactory;
import aplicacion.database.DatabaseMySQL;
import aplicacion.database.i_Database;

import interfaces.general.ShellExcepcion;
import java.util.ResourceBundle;

/**
 * Esta es la clase principal de la aplicación. Desde aquí se crean el modelo,
 * la vista y el controlador.
 * @author Daniel Dionne
 */
public class Aplicacion {
	public static void main (String[] args) {
		boolean exit = false;
		while (!exit) {
			int modoDebug = 0;
			if (args.length>0)
				if (args[0].equals("-debug")) {
					if (args.length==1) modoDebug = 1;
					else {
						try {
							modoDebug = Integer.valueOf(args[1]);
						}
						catch (Exception e) {
							System.err.println("Uso: java -jar turnomatic.jar -debug i\n" +
							"\t Donde 'i' es un valor entero 0, 1 o 2");
						}
					}
				}
			if (modoDebug>0) System.out.println("Iniciando aplicación");
			// Iniciar SWT
			Display display = new Display();
			Display.setAppName("Turnomatic");
			if (modoDebug>0) System.out.println("Display.................iniciado.");

			// Crear el modelo
			i_Database db = DatabaseFactory.getDatabase();
			if (modoDebug>0) System.out.println("Database................iniciado.");

			ResourceBundle bundle;
			// Crear el controlador
			Controlador controlador = new Controlador(db,modoDebug);
			if (modoDebug>0) System.out.println("Controlador.............iniciado.");

			// Crear la vista
			Vista v = new Vista(display, controlador, db);
			if (modoDebug>0) System.out.println("Vista...................iniciada.");

			// Iniciar aplicación
			try {
				v.start();
				if (v.getMotivoCierre()!=1) exit=true;
			}
			catch (Exception e) {
				new ShellExcepcion(v, e);
			}
		}
	}
}